home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 February: Tool Chest / Dev.CD Feb 95 / Dev.CD Feb 95.toast / Tool Chest / Interfaces / Universal Interfaces 2.0a3 / Universal AIncludes / Displays.a < prev    next >
Encoding:
Text File  |  1994-11-11  |  16.0 KB  |  736 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        Displays.a
  3. ;
  4. ;    Copyright:    © 1984-1994 by Apple Computer, Inc.
  5. ;                All rights reserved.
  6. ;
  7. ;    Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8. ;
  9. ;    Bugs?:        If you find a problem with this file, send the file and version
  10. ;                information (from above) and the problem description to:
  11. ;
  12. ;                    Internet:    apple.bugs@applelink.apple.com
  13. ;                    AppleLink:    APPLE.BUGS
  14. ;
  15. ;
  16.  
  17.     IF &TYPE('__DISPLAYS__') = 'UNDEFINED' THEN
  18. __DISPLAYS__ SET 1
  19.  
  20.     __SKIP_DISPLAY_INCLUDES__: SET 1
  21.  
  22.     IF &TYPE('__CONDITIONALMACROS__') = 'UNDEFINED' THEN
  23.     include 'ConditionalMacros.a'
  24.     ENDIF
  25.  
  26.     IF &TYPE('__COMPONENTS__') = 'UNDEFINED' THEN
  27.     include 'Components.a'
  28.     ENDIF
  29. ;        include 'Types.a'                                            ;
  30. ;        include 'MixedMode.a'                                        ;
  31.     IF &TYPE('__SKIP_DISPLAY_INCLUDES__') = 'UNDEFINED' THEN
  32.  
  33.     IF &TYPE('__APPLEEVENTS__') = 'UNDEFINED' THEN
  34.     include 'AppleEvents.a'
  35.     ENDIF
  36. ;        include 'Errors.a'                                            ;
  37. ;        include 'Memory.a'                                            ;
  38. ;        include 'OSUtils.a'                                        ;
  39. ;        include 'Events.a'                                            ;
  40. ;            include 'Quickdraw.a'                                    ;
  41. ;                include 'QuickdrawText.a'                            ;
  42. ;        include 'EPPC.a'                                            ;
  43. ;            include 'PPCToolbox.a'                                    ;
  44. ;                include 'AppleTalk.a'                                ;
  45. ;            include 'Processes.a'                                    ;
  46. ;                include 'Files.a'                                    ;
  47. ;        include 'Notification.a'                                    ;
  48.  
  49.     IF &TYPE('__WINDOWS__') = 'UNDEFINED' THEN
  50.     include 'Windows.a'
  51.     ENDIF
  52. ;        include 'Controls.a'                                        ;
  53. ;            include 'Menus.a'                                        ;
  54.     ENDIF
  55.  
  56. ; AppleEvents Core Suite 
  57. kAESystemConfigNotice            EQU        'cnfg'
  58. ; Core Suite types 
  59. kAEDisplayNotice                EQU        'dspl'
  60. kAEDisplaySummary                EQU        'dsum'
  61. keyDMConfigVersion                EQU        'dmcv'
  62. keyDMConfigFlags                EQU        'dmcf'
  63. keyDMConfigReserved                EQU        'dmcr'
  64. keyDisplayID                    EQU        'dmid'
  65. keyDisplayComponent                EQU        'dmdc'
  66. keyDisplayDevice                EQU        'dmdd'
  67. keyDisplayFlags                    EQU        'dmdf'
  68. keyDisplayMode                    EQU        'dmdm'
  69. keyDisplayModeReserved            EQU        'dmmr'
  70. keyDisplayReserved                EQU        'dmdr'
  71. keyDisplayMirroredId            EQU        'dmmi'
  72. keyDeviceFlags                    EQU        'dddf'
  73. keyDeviceDepthMode                EQU        'dddm'
  74. keyDeviceRect                    EQU        'dddr'
  75. keyPixMapRect                    EQU        'dpdr'
  76. keyPixMapHResolution            EQU        'dphr'
  77. keyPixMapVResolution            EQU        'dpvr'
  78. keyPixMapPixelType                EQU        'dppt'
  79. keyPixMapPixelSize                EQU        'dpps'
  80. keyPixMapCmpCount                EQU        'dpcc'
  81. keyPixMapCmpSize                EQU        'dpcs'
  82. keyPixMapAlignment                EQU        'dppa'
  83. keyPixMapResReserved            EQU        'dprr'
  84. keyPixMapReserved                EQU        'dppr'
  85. keyPixMapColorTableSeed            EQU        'dpct'
  86. keySummaryMenubar                EQU        'dsmb'
  87. keySummaryChanges                EQU        'dsch'
  88. keyDisplayOldConfig                EQU        'dold'
  89. keyDisplayNewConfig                EQU        'dnew'
  90.  
  91. dmOnlyActiveDisplays            EQU        true
  92. dmAllDisplays                    EQU        false
  93.  
  94. ; Switch Flags 
  95. kNoSwitchConfirmBit                EQU        0                    ; Flag indicating that there is no need to confirm a switch to this mode 
  96. kDepthNotAvailableBit            EQU        1                    ; Current depth not available in new mode 
  97. kShowModeBit                    EQU        3                    ; Show this mode even though it requires a confirm. 
  98. kModeNotResizeBit                EQU        4                    ; Do not use this mode to resize display (for cards that mode drives a different connector). 
  99.  
  100. ;    Summary Change Flags (sticky bits indicating an operation was performed)
  101. ;    For example, moving a display then moving it back will still set the kMovedDisplayBit.
  102. ;
  103. kBeginEndConfigureBit            EQU        0
  104. kMovedDisplayBit                EQU        1
  105. kSetMainDisplayBit                EQU        2
  106. kSetDisplayModeBit                EQU        3
  107. kAddDisplayBit                    EQU        4
  108. kRemoveDisplayBit                EQU        5
  109. kNewDisplayBit                    EQU        6
  110. kDisposeDisplayBit                EQU        7
  111. kEnabledDisplayBit                EQU        8
  112. kDisabledDisplayBit                EQU        9
  113. kMirrorDisplayBit                EQU        10
  114. kUnMirrorDisplayBit                EQU        11
  115.  
  116. ; Notification Messages for extended call back routines 
  117. kDMNotifyInstalled                EQU        1                    ; At install time 
  118. kDMNotifyEvent                    EQU        2                    ; Post change time 
  119. kDMNotifyRemoved                EQU        3                    ; At remove time 
  120. kDMNotifyPrep                    EQU        4                    ; Pre change time 
  121. kDMNotifyExtendEvent            EQU        5                    ; Allow registrees to extend apple event before it is sent 
  122. kDMNotifyDependents                EQU        6                    ; Minor notification check without full update 
  123. ; Notification Flags 
  124. kExtendedNotificationProc        EQU        (1 << 16)
  125.  
  126. ; Selectors for tablecloths 
  127. kTableclothInit                    EQU        0
  128. kTableclothDraw                    EQU        1
  129. kTableclothAnimate                EQU        2
  130. kTableclothAnimateContinue        EQU        3
  131. kTableclothClose                EQU        4
  132.  
  133. ; types for notifyType 
  134. kFullNotify                        EQU        0                    ; This is the appleevent whole nine yards notify 
  135. kFullDependencyNotify            EQU        1                    ; Only sends to those who want to know about interrelated functionality (used for updating UI) 
  136.  
  137. ; DisplayID/DeviceID constants 
  138. kDummyDeviceID                    EQU        $0FF                ; This is the ID of the dummy display, used when the last “real” display is disabled.
  139. kInvalidDisplayID                EQU        $000                ; This is the invalid ID
  140. kFirstDisplayID                    EQU        $100
  141.  
  142. ; bits for panelListFlags 
  143. kAllowDuplicatesBit                EQU        0
  144.  
  145. ; Constants for fidelity checks 
  146. kNoFidelity                        EQU        0
  147. kMinimumFidelity                EQU        1
  148. kDefaultFidelity                EQU        500                    ; I'm just picking a number for Apple default panels and engines
  149. kDefaultManufacturorFidelity    EQU        1000                ; I'm just picking a number for Manufacturor's panels and engines (overrides apple defaults)
  150.  
  151. kAnyPanelType                    EQU        0                    ; Pass to DMNewEngineList for list of all panels (as opposed to specific types)
  152. kAnyEngineType                    EQU        0                    ; Pass to DMNewEngineList for list of all engines
  153. kAnyDeviceType                    EQU        0                    ; Pass to DMNewDeviceList for list of all devices
  154. kAnyPortType                    EQU        0                    ; Pass to DMNewDevicePortList for list of all devices
  155.  
  156. ; portListFlags for DM_NewDevicePortList 
  157. ; Should offline devices be put into the port list (such as dummy display) 
  158. kPLIncludeOfflineDevicesBit        EQU        0
  159.  
  160. DMListEntryRec             RECORD    0
  161. itemID                     ds.l    1                                    ; DisplayID Manager
  162. itemComponent             ds.l    1                                    ; Component Manager
  163. itemDescription             ds        ComponentDescription                ; We can always construct this if we use something beyond the compontent mgr.
  164. itemClass                 ds.l    1                                    ; Class of group to put this panel (eg geometry/color/etc for panels, brightness/contrast for engines, video out/sound/etc for devices)
  165. itemFidelity             ds.l    1                                    ; How good is this item for the specified search?
  166. itemFlags                 ds.l    1                                    ; Set to 0 (future expansion)
  167. itemReserved             ds.l    1                                    ; What kind of code does the itemReference point to  (right now - kPanelEntryTypeComponentMgr only)
  168. itemFuture                 ds.l    1                                    ; Set to 0 (future expansion - probably an alternate code style)
  169. sizeof                     EQU    48
  170.                         ENDR
  171.  
  172. DependentNotifyRec         RECORD    0
  173. notifyType                 ds.l    1                                    ; What type was the engine that made the change (may be zero)
  174. notifyClass                 ds.l    1                                    ; What class was the change (eg geometry, color etc)
  175. displayID                 ds.l    1                                    ; Which device was touched (kInvalidDisplayID -> all or none)
  176. notifyComponent             ds.l    1                                    ; What engine did it (may be 0)?
  177. notifyVersion             ds.l    1                                    ; Set to 0 (future expansion)
  178. notifyFlags                 ds.l    1                                    ; Set to 0 (future expansion)
  179. notifyReserved             ds.l    1                                    ; Set to 0 (future expansion)
  180. notifyFuture             ds.l    1                                    ; Set to 0 (future expansion)
  181. sizeof                     EQU    32
  182.                         ENDR
  183.  
  184. TableclothInfoRec         RECORD    0
  185. tableclothInstance         ds.l    1
  186. nextAnimateTick             ds.l    1
  187. refCon                     ds.l    1
  188. allDisplays                 ds.b    1
  189. filler                     ds.b    3
  190. sizeof                     EQU    16
  191.                         ENDR
  192.  
  193. ; Trap interfaces 
  194.     IF GENERATING68K THEN
  195.         Macro
  196.         _DMGetFirstScreenDevice
  197.             moveq    #0,d0
  198.             dc.w     $ABEB
  199.         EndM
  200.     ELSE
  201.         IMPORT    DMGetFirstScreenDevice
  202.     ENDIF
  203.  
  204.     IF GENERATING68K THEN
  205.         Macro
  206.         _DMGetNextScreenDevice
  207.             moveq    #1,d0
  208.             dc.w     $ABEB
  209.         EndM
  210.     ELSE
  211.         IMPORT    DMGetNextScreenDevice
  212.     ENDIF
  213.  
  214.     IF GENERATING68K THEN
  215.         Macro
  216.         _DMDrawDesktopRect
  217.             moveq    #2,d0
  218.             dc.w     $ABEB
  219.         EndM
  220.     ELSE
  221.         IMPORT    DMDrawDesktopRect
  222.     ENDIF
  223.  
  224.     IF GENERATING68K THEN
  225.         Macro
  226.         _DMDrawDesktopRegion
  227.             moveq    #3,d0
  228.             dc.w     $ABEB
  229.         EndM
  230.     ELSE
  231.         IMPORT    DMDrawDesktopRegion
  232.     ENDIF
  233.  
  234.     IF GENERATING68K THEN
  235.         Macro
  236.         _DMGetGDeviceTablecloth
  237.             move.w    #$0404,d0
  238.             dc.w     $ABEB
  239.         EndM
  240.     ELSE
  241.         IMPORT    DMGetGDeviceTablecloth
  242.     ENDIF
  243.  
  244.     IF GENERATING68K THEN
  245.         Macro
  246.         _DMSetGDeviceTablecloth
  247.             move.w    #$0405,d0
  248.             dc.w     $ABEB
  249.         EndM
  250.     ELSE
  251.         IMPORT    DMSetGDeviceTablecloth
  252.     ENDIF
  253.  
  254.     IF GENERATING68K THEN
  255.         Macro
  256.         _DMBeginConfigureDisplays
  257.             move.w    #$0206,d0
  258.             dc.w     $ABEB
  259.         EndM
  260.     ELSE
  261.         IMPORT    DMBeginConfigureDisplays
  262.     ENDIF
  263.  
  264.     IF GENERATING68K THEN
  265.         Macro
  266.         _DMEndConfigureDisplays
  267.             move.w    #$0207,d0
  268.             dc.w     $ABEB
  269.         EndM
  270.     ELSE
  271.         IMPORT    DMEndConfigureDisplays
  272.     ENDIF
  273.  
  274.     IF GENERATING68K THEN
  275.         Macro
  276.         _DMAddDisplay
  277.             move.w    #$0D08,d0
  278.             dc.w     $ABEB
  279.         EndM
  280.     ELSE
  281.         IMPORT    DMAddDisplay
  282.     ENDIF
  283.  
  284.     IF GENERATING68K THEN
  285.         Macro
  286.         _DMMoveDisplay
  287.             move.w    #$0609,d0
  288.             dc.w     $ABEB
  289.         EndM
  290.     ELSE
  291.         IMPORT    DMMoveDisplay
  292.     ENDIF
  293.  
  294.     IF GENERATING68K THEN
  295.         Macro
  296.         _DMDisableDisplay
  297.             move.w    #$040A,d0
  298.             dc.w     $ABEB
  299.         EndM
  300.     ELSE
  301.         IMPORT    DMDisableDisplay
  302.     ENDIF
  303.  
  304.     IF GENERATING68K THEN
  305.         Macro
  306.         _DMEnableDisplay
  307.             move.w    #$040B,d0
  308.             dc.w     $ABEB
  309.         EndM
  310.     ELSE
  311.         IMPORT    DMEnableDisplay
  312.     ENDIF
  313.  
  314.     IF GENERATING68K THEN
  315.         Macro
  316.         _DMRemoveDisplay
  317.             move.w    #$040C,d0
  318.             dc.w     $ABEB
  319.         EndM
  320.     ELSE
  321.         IMPORT    DMRemoveDisplay
  322.     ENDIF
  323.  
  324. ; OBSOLETE ******************
  325. ;pascal OSErr DMGetComponentAnimateTicks(DMTableclothUPP animationComponent,unsigned long *goodDelay,unsigned long *maxDelay)
  326. ;    = {0x303C,0x060D,0xABEB}        { ; fix pascal headers
  327. ;
  328. ;pascal OSErr DMSetComponentAnimateTicks(DMTableclothUPP animationComponent,unsigned long goodDelay,unsigned long maxDelay)
  329. ;    = {0x303C,0x060E,0xABEB}        { ; fix pascal headers
  330. ;
  331. ;pascal OSErr DMGetNextAnimateTime(unsigned long *nextAnimateTime)
  332. ;    = {0x303C,0x020F,0xABEB}        { ; fix pascal headers
  333. ;************************** 
  334.     IF GENERATING68K THEN
  335.         Macro
  336.         _DMSetMainDisplay
  337.             move.w    #$0410,d0
  338.             dc.w     $ABEB
  339.         EndM
  340.     ELSE
  341.         IMPORT    DMSetMainDisplay
  342.     ENDIF
  343.  
  344.     IF GENERATING68K THEN
  345.         Macro
  346.         _DMSetDisplayMode
  347.             move.w    #$0A11,d0
  348.             dc.w     $ABEB
  349.         EndM
  350.     ELSE
  351.         IMPORT    DMSetDisplayMode
  352.     ENDIF
  353.  
  354.     IF GENERATING68K THEN
  355.         Macro
  356.         _DMCheckDisplayMode
  357.             move.w    #$0C12,d0
  358.             dc.w     $ABEB
  359.         EndM
  360.     ELSE
  361.         IMPORT    DMCheckDisplayMode
  362.     ENDIF
  363.  
  364.     IF GENERATING68K THEN
  365.         Macro
  366.         _DMGetDeskRegion
  367.             move.w    #$0213,d0
  368.             dc.w     $ABEB
  369.         EndM
  370.     ELSE
  371.         IMPORT    DMGetDeskRegion
  372.     ENDIF
  373.  
  374.     IF GENERATING68K THEN
  375.         Macro
  376.         _DMRegisterNotifyProc
  377.             move.w    #$0414,d0
  378.             dc.w     $ABEB
  379.         EndM
  380.     ELSE
  381.         IMPORT    DMRegisterNotifyProc
  382.     ENDIF
  383.  
  384.     IF GENERATING68K THEN
  385.         Macro
  386.         _DMRemoveNotifyProc
  387.             move.w    #$0415,d0
  388.             dc.w     $ABEB
  389.         EndM
  390.     ELSE
  391.         IMPORT    DMRemoveNotifyProc
  392.     ENDIF
  393.  
  394.     IF GENERATING68K THEN
  395.         Macro
  396.         _DMQDIsMirroringCapable
  397.             move.w    #$0216,d0
  398.             dc.w     $ABEB
  399.         EndM
  400.     ELSE
  401.         IMPORT    DMQDIsMirroringCapable
  402.     ENDIF
  403.  
  404.     IF GENERATING68K THEN
  405.         Macro
  406.         _DMCanMirrorNow
  407.             move.w    #$0217,d0
  408.             dc.w     $ABEB
  409.         EndM
  410.     ELSE
  411.         IMPORT    DMCanMirrorNow
  412.     ENDIF
  413.  
  414.     IF GENERATING68K THEN
  415.         Macro
  416.         _DMIsMirroringOn
  417.             move.w    #$0218,d0
  418.             dc.w     $ABEB
  419.         EndM
  420.     ELSE
  421.         IMPORT    DMIsMirroringOn
  422.     ENDIF
  423.  
  424.     IF GENERATING68K THEN
  425.         Macro
  426.         _DMMirrorDevices
  427.             move.w    #$0619,d0
  428.             dc.w     $ABEB
  429.         EndM
  430.     ELSE
  431.         IMPORT    DMMirrorDevices
  432.     ENDIF
  433.  
  434.     IF GENERATING68K THEN
  435.         Macro
  436.         _DMUnmirrorDevice
  437.             move.w    #$041A,d0
  438.             dc.w     $ABEB
  439.         EndM
  440.     ELSE
  441.         IMPORT    DMUnmirrorDevice
  442.     ENDIF
  443.  
  444.     IF GENERATING68K THEN
  445.         Macro
  446.         _DMGetNextMirroredDevice
  447.             move.w    #$041B,d0
  448.             dc.w     $ABEB
  449.         EndM
  450.     ELSE
  451.         IMPORT    DMGetNextMirroredDevice
  452.     ENDIF
  453.  
  454.     IF GENERATING68K THEN
  455.         Macro
  456.         _DMBlockMirroring
  457.             moveq    #28,d0
  458.             dc.w     $ABEB
  459.         EndM
  460.     ELSE
  461.         IMPORT    DMBlockMirroring
  462.     ENDIF
  463.  
  464.     IF GENERATING68K THEN
  465.         Macro
  466.         _DMUnblockMirroring
  467.             moveq    #29,d0
  468.             dc.w     $ABEB
  469.         EndM
  470.     ELSE
  471.         IMPORT    DMUnblockMirroring
  472.     ENDIF
  473.  
  474.     IF GENERATING68K THEN
  475.         Macro
  476.         _DMGetDisplayMgrA5World
  477.             move.w    #$021E,d0
  478.             dc.w     $ABEB
  479.         EndM
  480.     ELSE
  481.         IMPORT    DMGetDisplayMgrA5World
  482.     ENDIF
  483.  
  484.     IF GENERATING68K THEN
  485.         Macro
  486.         _DMGetDisplayIDByGDevice
  487.             move.w    #$051F,d0
  488.             dc.w     $ABEB
  489.         EndM
  490.     ELSE
  491.         IMPORT    DMGetDisplayIDByGDevice
  492.     ENDIF
  493.  
  494.     IF GENERATING68K THEN
  495.         Macro
  496.         _DMGetGDeviceByDisplayID
  497.             move.w    #$0520,d0
  498.             dc.w     $ABEB
  499.         EndM
  500.     ELSE
  501.         IMPORT    DMGetGDeviceByDisplayID
  502.     ENDIF
  503.  
  504.     IF GENERATING68K THEN
  505.         Macro
  506.         _DMSetDisplayComponent
  507.             move.w    #$0421,d0
  508.             dc.w     $ABEB
  509.         EndM
  510.     ELSE
  511.         IMPORT    DMSetDisplayComponent
  512.     ENDIF
  513.  
  514.     IF GENERATING68K THEN
  515.         Macro
  516.         _DMGetDisplayComponent
  517.             move.w    #$0422,d0
  518.             dc.w     $ABEB
  519.         EndM
  520.     ELSE
  521.         IMPORT    DMGetDisplayComponent
  522.     ENDIF
  523.  
  524.     IF GENERATING68K THEN
  525.         Macro
  526.         _DMNewDisplay
  527.             move.w    #$0D23,d0
  528.             dc.w     $ABEB
  529.         EndM
  530.     ELSE
  531.         IMPORT    DMNewDisplay
  532.     ENDIF
  533.  
  534.     IF GENERATING68K THEN
  535.         Macro
  536.         _DMDisposeDisplay
  537.             move.w    #$0424,d0
  538.             dc.w     $ABEB
  539.         EndM
  540.     ELSE
  541.         IMPORT    DMDisposeDisplay
  542.     ENDIF
  543.  
  544.     IF GENERATING68K THEN
  545.         Macro
  546.         _DMResolveDisplayComponents
  547.             moveq    #37,d0
  548.             dc.w     $ABEB
  549.         EndM
  550.     ELSE
  551.         IMPORT    DMResolveDisplayComponents
  552.     ENDIF
  553.  
  554.     IF GENERATING68K THEN
  555.         Macro
  556.         _DMRegisterExtendedNotifyProc
  557.             move.w    #$07EF,d0
  558.             dc.w     $ABEB
  559.         EndM
  560.     ELSE
  561.         IMPORT    DMRegisterExtendedNotifyProc
  562.     ENDIF
  563.  
  564.     IF GENERATING68K THEN
  565.         Macro
  566.         _DMRemoveExtendedNotifyProc
  567.             move.w    #$0026,d0
  568.             dc.w     $ABEB
  569.         EndM
  570.     ELSE
  571.         IMPORT    DMRemoveExtendedNotifyProc
  572.     ENDIF
  573.  
  574.     IF GENERATING68K THEN
  575.         Macro
  576.         _DMNewPanelList
  577.             move.w    #$0027,d0
  578.             dc.w     $ABEB
  579.         EndM
  580.     ELSE
  581.         IMPORT    DMNewPanelList
  582.     ENDIF
  583.  
  584.     IF GENERATING68K THEN
  585.         Macro
  586.         _DMNewEngineList
  587.             move.w    #$0028,d0
  588.             dc.w     $ABEB
  589.         EndM
  590.     ELSE
  591.         IMPORT    DMNewEngineList
  592.     ENDIF
  593.  
  594.     IF GENERATING68K THEN
  595.         Macro
  596.         _DMNewDeviceList
  597.             move.w    #$0029,d0
  598.             dc.w     $ABEB
  599.         EndM
  600.     ELSE
  601.         IMPORT    DMNewDeviceList
  602.     ENDIF
  603.  
  604.     IF GENERATING68K THEN
  605.         Macro
  606.         _DMNewDevicePortList
  607.             move.w    #$002A,d0
  608.             dc.w     $ABEB
  609.         EndM
  610.     ELSE
  611.         IMPORT    DMNewDevicePortList
  612.     ENDIF
  613.  
  614.     IF GENERATING68K THEN
  615.         Macro
  616.         _DMGetIndexedItemFromList
  617.             move.w    #$002B,d0
  618.             dc.w     $ABEB
  619.         EndM
  620.     ELSE
  621.         IMPORT    DMGetIndexedItemFromList
  622.     ENDIF
  623.  
  624.     IF GENERATING68K THEN
  625.         Macro
  626.         _DMDisposeList
  627.             move.w    #$002C,d0
  628.             dc.w     $ABEB
  629.         EndM
  630.     ELSE
  631.         IMPORT    DMDisposeList
  632.     ENDIF
  633.  
  634.     IF GENERATING68K THEN
  635.         Macro
  636.         _DMGetNameByDisplayID
  637.             move.w    #$042D,d0
  638.             dc.w     $ABEB
  639.         EndM
  640.     ELSE
  641.         IMPORT    DMGetNameByDisplayID
  642.     ENDIF
  643.  
  644.     IF GENERATING68K THEN
  645.         Macro
  646.         _DMNewDisplayIDByPortComponent
  647.             move.w    #$082E,d0
  648.             dc.w     $ABEB
  649.         EndM
  650.     ELSE
  651.         IMPORT    DMNewDisplayIDByPortComponent
  652.     ENDIF
  653.  
  654.     IF GENERATING68K THEN
  655.         Macro
  656.         _DMGetPortComponentByPortID
  657.             move.w    #$082F,d0
  658.             dc.w     $ABEB
  659.         EndM
  660.     ELSE
  661.         IMPORT    DMGetPortComponentByPortID
  662.     ENDIF
  663.  
  664.     IF GENERATING68K THEN
  665.         Macro
  666.         _DMSendDependentNotification
  667.             move.w    #$002D,d0
  668.             dc.w     $ABEB
  669.         EndM
  670.     ELSE
  671.         IMPORT    DMSendDependentNotification
  672.     ENDIF
  673.  
  674.     IF GENERATING68K THEN
  675.         Macro
  676.         _DMDisposePortComponent
  677.             move.w    #$0231,d0
  678.             dc.w     $ABEB
  679.         EndM
  680.     ELSE
  681.         IMPORT    DMDisposePortComponent
  682.     ENDIF
  683.  
  684. ;pascal OSErr DMGetPortIDByDeviceComponent(Component deviceComponent, DisplayIDType* displayID)
  685. ;    = {0x303C,0x0032,0xABEB};
  686.     IF GENERATING68K THEN
  687.         Macro
  688.         _DMGetDisplayIDByDeviceComponent
  689.             move.w    #$002E,d0
  690.             dc.w     $ABEB
  691.         EndM
  692.     ELSE
  693.         IMPORT    DMGetDisplayIDByDeviceComponent
  694.     ENDIF
  695.  
  696. ;
  697. ;    Required calls in components:
  698. ;    
  699. ;
  700. ;    GeneralDeviceCalls
  701. ;        Return information specific to all devices
  702. ;
  703. ;    OSErr        CountDevicePorts(unsigned long portCount, ResType deviceType);
  704. ;    OSErr        GetPortInfo(unsigned long portNumber,PortInfoRec* portInfo);
  705. ;                    PortInfo gives information for multiported devices (such as Telecaster).
  706. ;    OSErr        CountPortEngineComponents(unsigned long portNumber,unsigned long* engineCount);
  707. ;    OSErr        GetPortEngineComponentInfo(unsigned long portNumber,unsigned long engineCount, DevicePortInfoRec* componentInfo);
  708. ;
  709. ;
  710. ;    Video Engine Components
  711. ;        Return information specific to video devices
  712. ;
  713. ;    OSErr        CheckTiming
  714. ;                    Give the device a chance to okay or modify device settings
  715. ;                    especially useful for overridding the "needsConfirm" bit.
  716. ;    OSErr        GetVideoInfo
  717. ;                    It would be nice to be able to get direct info about screen size
  718. ;                    dot pitch etc.  This obviously needs to be fleshed out.
  719. ;    OSErr        SetWiggleDevice(Boolean wiggleDevice);
  720. ;    OSErr        GetWiggleDevice(Boolean* isWiggling);
  721. ;                    Returns an error if device is not capable of wiggling
  722. ;
  723. ;    Sound Engine Components
  724. ;    
  725. ;    OSErr        SetWiggleDevice(Boolean wiggleDevice);
  726. ;    OSErr        GetWiggleDevice(Boolean* isWiggling);
  727. ;                    Returns an error if device is not capable of wiggling
  728. ;
  729. ;    HI Component Calls
  730. ;    
  731. ;    OSErr        TargetDevice(DisplayID displayID);
  732. ;    We could also define a standard notify message and call that when we had an update issue (saving on components having to register for notifies)
  733. ;            That would by us not having to handle an extended remove notification that handles "you data" specific removes.
  734. ;
  735.     ENDIF ; __DISPLAYS__
  736.